package socket;

import java.io.IOException;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.nio.charset.StandardCharsets;

public class Server {
    private ServerSocket serverSocket;
    public Server(){
        try {
            System.out.println("正在启动服务器");
            serverSocket = new ServerSocket(8088);
            System.out.println("服务器启动完毕");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public void start(){
        Socket socket = null;
        while (true) {
            // 初始化Socket对象
            try {
                // 打印等待客户端连接的消息
                System.out.println("等待客户端链接");
                // 通过serverSocket接受客户端连接
                socket = serverSocket.accept();
                // 打印客户端连接成功的消息
                System.out.println("一个客户端链接了");

                // 获取客户端发送的数据的输入流
                InputStream is = socket.getInputStream();
                // 读取客户端发送的数据长度
                int len = is.read();
                // 根据数据长度创建字节数组
                byte[] data = new byte[len];
                // 读取客户端发送的数据到字节数组中
                is.read(data);
                // 将字节数组转换为字符串
                String line = new String(data, StandardCharsets.UTF_8);
                // 打印接收到的客户端数据
                System.out.println(line);
            } catch (IOException e) {
                // 打印异常信息
                e.printStackTrace();
            }finally {
                // 关闭Socket连接，释放资源
                try {
                    socket.close();
                } catch (IOException e) {
                    // 打印异常信息
                    e.printStackTrace();
                }
            }
        }
    }

    public static void main(String[] args) {
        Server server = new Server();
        server.start();
    }


}
